package 炫彩基类

import (
	xcc "gitee.com/go_888/xcgui/xcgui/xcc"
)

// X结构_菜单弹出窗口 菜单-弹出窗口信息
type X结构_菜单弹出窗口 struct {
	X当前弹出项窗口句柄   int   // 窗口句柄
	X父项ID int32 // 父项ID
}

// X结构_菜单背景自绘 菜单背景自绘结构
type X结构_菜单背景自绘 struct {
	X菜单句柄     int   // 菜单句柄
	X当前弹出项窗口句柄   int   // 当前弹出菜单项的窗口句柄
	X父项ID int32 // 父项ID
}

// X结构_菜单项自绘 菜单项自绘结构
type X结构_菜单项自绘 struct {
	HMenu             int                 // 菜单句柄
	HWindow           int                 // 当前弹出菜单项的窗口句柄
	X项ID               int32               // ID
	X状态            xcc.X菜单项标识 // 状态: Menu_Item_Flag_
	X快捷键宽度 int32               // 右侧快捷键占位宽度
	X坐标            X结构_矩形                // 坐标
	X图标句柄             int                 // 菜单项图标句柄
	X文本指针             uintptr             // 文本, 使用xc.UintPtrToString()函数转换到string
}

// X结构_列表框项 列表框项信息
type X结构_列表框项 struct {
	X索引      int32                // 项索引
	X用户数据  int                  // 用户绑定数据
	X高度    int32                // 项默认高度
	X选中时高度 int32                // 项选中时高度
	X状态     xcc.X列表项状态 // 状态: List_Item_State_
	RcItem     X结构_矩形                 // 项坐标
	X布局句柄    int                  // 布局对象句柄
	X模板句柄      int                  // 列表项模板句柄
}

// List 列表头项信息
type X结构_列表头项 struct {
	Index          int32              // 项索引
	X用户数据      int                // 用户绑定数据
	X支持排序          bool               // 是否支持排序
	X排序方式      int32              // 排序方式,0无效,1升序,2降序
	X列适配器索引 int32              // 对应数据适配器中的列索引
	X状态         xcc.X普通状态 // 状态: Common_State3_
	RcItem         X结构_矩形               // 项坐标
	X布局句柄        int                // 布局对象句柄
	X模板句柄          int                // 列表项模板句柄
}

// List 列表项信息
type X结构_列表项 struct {
	Index     int32                // 项索引
	X子项索引  int32                // 子项索引
	X用户数据 int                  // 用户数据
	NState    xcc.X列表项状态 // 状态: List_Item_State_
	RcItem    X结构_矩形                 // 未使用
	HLayout   int                  // 布局对象句柄
	HTemp     int                  // 列表项模板句柄
}

// Tree 树项信息
type X结构_列表树项 struct {
	NID        int32                // 项ID
	X深度     int32                // 深度
	X高度    int32                // 项高度
	X选中时高度 int32                // 项选中状态高度
	NUserData  int                  // 用户数据
	X是否展开    bool                 // 展开
	X状态     xcc.X列表树项状态 // 状态:　Tree_Item_State_
	RcItem     X结构_矩形                 // 坐标
	HLayout    int                  // 布局对象句柄
	HTemp      int                  // 列表项模板句柄
}

// X结构_列表树UI元素拖动项 树UI元素拖动项
type X结构_列表树UI元素拖动项 struct {
	X拖动项ID int32 // 拖动项ID
	X目标项ID int32 // 目标项ID
	X类型     int32 // 停放相对目标位置, 0:(上)停放到目标的上面, 1:(下)停放到目标的下面, 3:(中)停放到目标的的子项,
}

// ListView 列表视项信息
type X结构_列表视图项 struct {
	X组索引    int32                // 项所述组索引 -1没有组
	X项索引     int32                // 项在数组中位置索引,如果此致为-1,那么为组
	NUserData int                  // 用户绑定数据
	NState    xcc.X列表项状态 // 状态: List_Item_State_
	RcItem    X结构_矩形                 // 整个区域,包含边框
	HLayout   int                  // 布局对象
	HTemp     int                  // 列表项模板
}

type X结构_矩形 struct {
	X左   int32
	X上    int32
	X右  int32
	X下 int32
}

type X结构_矩形F struct {
	X左   float32
	X上    float32
	X右  float32
	X下 float32
}

type X结构_坐标 struct {
	X坐标 int32
	Y坐标 int32
}

type X结构_坐标F struct {
	X坐标 float32
	Y坐标 float32
}

type X结构_大小 struct {
	X宽 int32
	X高 int32
}

// X结构_字体属性 字体属性
type X结构_字体属性 struct {
	X高度         int32      // 高度
	X宽度          int32      // 宽度
	X指定角度     int32      // 指定角度
	X字符基线    int32      // 字符基线
	X字体粗细         int32      // 字体粗细
	X是否斜体         byte       // 是否斜体
	X是否下划线      byte       // 是否下划线
	X是否删除线      byte       // 是否删除线
	X字符集        byte       // 字符集
	X输出精度   byte       // 输出精度
	X剪辑精度  byte       // 剪辑精度
	X输出质量        byte       // 输出质量
	X字符间距 byte       // 字符间距
	X字体名称       [32]uint16 // 字体名称, 使用xc.Font_Info_Name()函数转换为string.
}

// Editor 颜色信息
type X结构_代码编辑框_颜色信息 struct {
	X背景色1         int32 // 背景色1, xc.RGBA 颜色
	X背景色2         int32 // 背景色2, xc.RGBA 颜色
	X文本色      int32 // 文本色, xc.RGBA 颜色
	X断点色      int32 // 断点色, xc.RGBA 颜色
	X断点箭头色 int32 // 断点箭头色, xc.RGBA 颜色
	X当前执行位置色             int32 // 当前执行位置指示色, xc.RGBA 颜色
	X当前行高亮色          int32 // 突出显示当前行颜色, xc.RGBA 颜色
	X匹配文本背景色           int32 // 设置匹配文本背景色, xc.RGBA 颜色
}

// Edit 数据复制
type X结构_编辑框_数据复制 struct {
	X内容数量      int32                  // 内容数量
	X样式数量 int32                  // 样式数量
	X样式数组      *X结构_编辑框_数据复制_样式 // 样式数组
	X内容数组       *uint32                // 内容数组
}

// Edit 样式信息
type X结构_编辑框_样式信息 struct {
	X样式类型            xcc.X编辑框风格类型 // 样式类型: Edit_Style_Type_
	X引用计数            uint16               // 引用计数
	X字体_图片_UI句柄 int                  // 字体,图片,UI对象句柄
	X颜色           int32                // 颜色
	X是否使用颜色          bool                 // 是否使用颜色
}

// Edit 数据复制-样式
type X结构_编辑框_数据复制_样式 struct {
	X字体_图片_UI句柄 int   // 字体,图片,UI对象句柄
	X颜色           int32 // 颜色
	X是否使用颜色          bool  // 是否使用颜色
}

// X结构_位置点 位置点
type X结构_位置点 struct {
	X行索引    int32 // 行索引
	X列索引 int32 // 列索引
}

// X结构_字体信息 字体信息
type X结构_字体信息 struct {
	X字体pt  int32          // 字体大小, 单位(pt,磅).
	X字体样式 xcc.X字体样式 // 字体样式: FontStyle_
	X字体名称   [32]uint16     // 字体名称, 使用xc.Font_Info_Name()函数转换为string.
}

// ListBox 列表框项信息2
type X结构_列表框项2 struct {
	NUserData  int   // 用户绑定数据
	X高度    int32 // 项高度, -1使用默认高度
	X选中时高度 int32 // 项选中时高度, -1使用默认高度
}

// X结构_月历项数据 月历元素项数据
type X结构_月历项数据 struct {
	X日期   int32             // 日期
	NType  int32             // 1上月, 2当月, 3下月
	X状态 xcc.X组合状态 // 组合状态, MonthCal_State_Flag_
	RcItem X结构_矩形              // 项坐标
}

// PGrid 属性网格项信息
type X结构_属性网格项 struct {
	NType         int32 // 类型
	NID           int32 // 项ID
	NDepth        int32 // 深度
	NUserData     int   // 用户数据
	X名称列宽度 int32 // 名称列宽度
	RcItem        X结构_矩形  // 坐标
	X展开      X结构_矩形  // 展开
	BExpand       bool  // 是否展开
	X是否可见         bool  // 是否可见
}

// 列表视项ID
type X结构_列表视图项ID struct {
	IGroup int32 // 组索引
	IItem  int32 // 项索引
}
